package com.tcxr.dao;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.dao.IncorrectResultSizeDataAccessException;
import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper;
import org.springframework.stereotype.Repository;

import com.tcxr.entity.Login;
import com.tcxr.entity.Theme;
import com.tcxr.framework.base.DaoBase;
import com.tcxr.framework.system.SysParameters;

@Repository
public class LoginDao extends DaoBase {

	/**
	 * 通过账号与密码查询出 用户信息
	 * @param user
	 * @param password
	 * @return
	 */
	public   Login  getLogin(String user,String password)
	{
		 
		
		String sql="SELECT   * " +
//		"lo_id,"+ 
//		"lo_name,"+  
//		"lo_user,"+  
//		 "lo_password,"+ 
//		 "lo_img,"+  
//		"lo_status, "+ 
//		"lo_create_date" +
		" FROM  login "+
		 "WHERE  lo_user = ?  AND lo_password= ? ";
		
		Login login=null;
		try {
			login= jdbcTemplate.queryForObject(sql,new Object[]{user,password},ParameterizedBeanPropertyRowMapper.newInstance(Login.class));
		} catch (EmptyResultDataAccessException e) {
			// System.out.println("转型失败空");
			//返回为空，，用户验证失败。
		}catch (IncorrectResultSizeDataAccessException e) {
		 
			 logger.error("Incorrect result size: expected 1, actual 2，Value{ lo_user FROM  login :"+user);
		}
		
//		Iterator it = rows.iterator(); 
//		List<Login> list=new ArrayList<Login>();
//		Map userMap =null;
//		Login login=null;
//		while(it.hasNext()) {  
//		      userMap = (Map) it.next();  
//		      login=new Login();
//		      login.setLoId((Integer) userMap.get("lo_id"));
//		      login.setLoName((String) userMap.get("lo_name"));
//		      login.setLoUser((String) userMap.get("lo_user"));
//		      login.setLoImgMD5((String) userMap.get("lo_img_md5"));
//		      login.setLoStatus((Integer) userMap.get("lo_status"));
//		      login.setLoCreateDate((String) userMap.get("lo_create_date"));
//		      list.add(login);
//			}
		return login;
	}
	
	/**
	 * 通过账号名  查询出 是否有这个用户
	 * @param user
	 * @return
	 */
	public  Login  getLogin(String user)
	{
		String sql="SELECT * FROM  login  "+
					"WHERE  lo_user = ? ";
		 
		Login login=null;
		try{
			login= jdbcTemplate.queryForObject(sql,new Object[]{user},ParameterizedBeanPropertyRowMapper.newInstance(Login.class));
		//System.out.println(jdbcTemplate.toString());	 
			
		}catch (EmptyResultDataAccessException e) {
			//返回为空，null
		}
		
		return login;
	}
	
	/**
	 * 通过账号 ID 查询出  用户信息
	 * @param user
	 * @param password
	 * @return
	 */
	public   Login getLogin(int loginId)
	{
		String sql="SELECT * FROM  login "+
					"WHERE  lo_id = ? ";
		Login login=null;
		try{
			login= jdbcTemplate.queryForObject(sql,new Object[]{loginId},ParameterizedBeanPropertyRowMapper.newInstance(Login.class));
		}catch (EmptyResultDataAccessException e) {
			//返回为空null
		}
		return login;
	}
	
	
	
	
	/**
	 * 添加一个 用户信息
	 * @param login
	 * @return 返回当前 数据的 主键 ID
	 */
	public int addLogin(Login login)
	{
		login.setLoId(super.getTableID("lo_id","login")) ;
		
		String sql= " INSERT INTO login "+
					" (lo_id, "+
					" lo_name, "+
					" lo_user, "+
					" lo_password, "+
					" lo_img, "+
					" lo_status," +
					" lo_create_date ) VALUES (?,?,?,?,?,?,? )";
				 
		
	 jdbcTemplate.update(sql,new Object[]{
				login.getLoId(),
				login.getLoName(),
				login.getLoUser(),
				login.getLoPassword(),
				login.getLoImg(),
				login.getLoStatus(),
				SysParameters.getDate()});
		
		
		return  login.getLoId();
		
	}
	
	/**
	 * 修改一个  用户 的name，通过ID判定，
	 * @param login
	 * @return 返回不等于 0，表示修改成功
	 */
	public int setLoginName(int loId,String loName)
	{
		String sql= " UPDATE login  SET lo_name=?    where lo_id=?  ";
		
	int temp=jdbcTemplate.update(sql,new Object[]{loName,loId});
		
		
		return  temp;
		
	}
	/**
	 * 修改一个  用户 的user，通过ID判定，
	 * @param login
	 * @return 返回不等于 0，表示修改成功
	 */
	public int setLoginUser(int loId,String loUser)
	{
		String sql= " UPDATE login  SET lo_user=?   where lo_id=?  ";
		
		int temp=jdbcTemplate.update(sql,new Object[]{loUser,loId});
		
		return  temp;
		
	}
	
	/**
	 * 修改一个  用户 的passowrd，通过ID判定，
	 * @param login
	 * @return 返回不等于 0，表示修改成功
	 */
	public int setLoginPassword(int loId,String loPassword)
	{
		String sql= " UPDATE login  SET lo_password=?  where lo_id=?  ";
		int temp=jdbcTemplate.update(sql,new Object[]{ loPassword,loId});
		return  temp;
		
	}
	
	/**
	 * 修改一个  用户 的img，通过ID判定，
	 * @param login
	 * @return 返回不等于 0，表示修改成功
	 */
	public int setLoginImg(int loId,String loImg)
	{
		String sql= " UPDATE login  SET lo_img=? where lo_id=?  ";
		
		int temp=jdbcTemplate.update(sql,new Object[]{loImg,loId});
		return  temp;
		
	}
	
	/**
	 * 修改一个  用户 的Status，通过ID判定，
	 * @param login
	 * @return 返回不等于 0，表示修改成功
	 */
	public int setLoginStatus(int loId,String loStatus)
	{
		String sql= " UPDATE login  SET lo_status=?  where lo_id=?  ";
		int temp=jdbcTemplate.update(sql,new Object[]{ loStatus,loId});
		return  temp;
		
	}
	
	
	
	
}
